package agenda;
import excecoes.SkypeInvalido;
import excecoes.FormaDeContatoInvalida;


public class Skype extends FormaDeContato {

	private static final long serialVersionUID = 1L;

	/**
	 * Cria uma forma de contato Skype
	 * @param skypeName O Skype Name do contato
	 * @throws SkypeInvalido Lan�a exce��o de SkypeInvalido caso o Skype Name seja inv�lido
	 */

	public Skype(String skypeName) throws FormaDeContatoInvalida {
		super("Skype", skypeName, null);
	}

	/**
	 * Cria uma forma de contato Skype
	 * @param skypeName O Skype Name do contato
	 * @param comentario Um comentario sobre esta forma de contato Skype
	 * @throws Exception Lanca excecao de SkypeInvalido caso o Skype Name seja invalido
	 */

	public Skype(String skypeName, String comentario) throws FormaDeContatoInvalida {
		super("Skype", skypeName, comentario);
	}

	/**
	 * @throws SkypeInvalido Lanca excecao de SkypeInvalido caso o Skype Name seja invalido.
	 */

	@Override
	public void validaEndereco(String skypeName) throws SkypeInvalido {

		for (int i = 0; i < skypeName.length(); i++) {

			char ch = skypeName.charAt(i);

			if (!Character.isLetterOrDigit(ch) && ch != '-' && ch != '_' && ch != '.') {
				throw new SkypeInvalido("Um Skype Name deve conter apenas letras, numeros, '-', '_' ou '.'");
			}
		}
	}

}
